<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象的拓展/方法的枚举</title>
</head>
<body>
    <h1>方法的枚举</h1>
    <h2>Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。</h2>

    <script>    
    let obj = { foo: 123 };
    console.log(Object.getOwnPropertyDescriptor(obj, 'foo'));
    // {
    //   value: 123,
    //   writable: true,     // 属性值是否可写
    //   enumerable: true,   // 属性是否可枚举
    //   configurable: true  // 属性是否可配置
    // }

    // 定义一个不可写的属性
    Object.defineProperty(obj, 'bar', {
        value: 456,
        writable: false
    });
    console.log(Object.getOwnPropertyDescriptor(obj, 'bar'));
    // {
    //   value: 456,
    //   writable: false,    // 不可写
    //   enumerable: false,  // 默认不可枚举
    //   configurable: false // 默认不可配置
    // }
    </script>
</body>
</html> 